package org.su.generalmvc.util;


/**
 * 一个普通的字符串数组，只有加入和读取操作，不做删除，
 * 因为java中没有动态数组，而ArrayList相对于纯数组来讲，相对效率低一点（读取的时候需要每次判断或扩充数组，
 * copy数组时需要类型转换等操作）
 * @author yangchuan createtime:2012-6-1上午10:43:03
 *
 */
public class StringArray {

	private static int len = 10;
	
	private String items[] = null;
	private int size = 0;
	private String[] data = null;
	
	public StringArray(){
		this(len);
	}

	public StringArray(int length) {
		items = new String[length];
	}
	
	public void add(String str){
		
		if(size == items.length-1){
			String temp[] = new String[2*items.length];
			System.arraycopy(items, 0, temp, 0, items.length);
			items = temp;
		}
		items[size] = str;
		size++;
	}
	
	public String get(int i){
		return items[i];
	}
	
	public int getSize(){
		return size;
	}
	
	public String[] toArray(){
		if(data == null || data.length < size){
			data = new String[size];
			System.arraycopy(items, 0, data, 0, size);
		}
		return data;
	}
	
}
